﻿@page "/ru/5.8/modules/mod-auto-control"
@{
    Layout = "_ArticleLayout";
    ViewBag.Title = "Модуль автоматического управления";
}

<nav class="doc-toc">
    <div class="h6">На этой странице</div>
    <hr>
    <ul>
        <li><a href="#overview">Обзор</a></li>
        <li><a href="#installation">Установка</a></li>
        <li><a href="#variables">Переменные команд ТУ</a></li>
    </ul>
</nav>

<div class="doc-content">
    <h1>Модуль автоматического управления</h1>
    <h2 id="overview">Обзор</h2>
    <p>Модуль автоматического управления позволяет в автоматическом режиме отправлять команды при выполнении определённых условий. Без регистрации модуль работает в демонстрационном режиме с ограничением времени полнофункциональной работы 10 минут после перезапуска. Модуль работает под управлением приложения Сервер. Настройка модуля выполняется с помощью удобной формы, показанной на следующем рисунке.</p>
    <figure class="figure">
        <img src="mod-auto-control-files/mod_auto_control_ru.png" class="figure-img img-fluid" alt="Форма конфигурации модуля" />
    </figure>
    <p>Условия, необходимые для отправки команд, задаются в виде триггеров, которые бывают нескольких типов:</p>
    <ul>
        <li>триггер на данные канала - срабатывает, если значение или статус входного канала удовлетворяют определённым условиям;</li>
        <li>триггер на изменение данных канала - срабатывает при каждом изменении значения или статуса входного канала;</li>
        <li>триггер на событие - срабатывает при появлении события, удовлетворяющего условиям;</li>
        <li>триггер по времени - срабатывает по заданным датам и времени;</li>
        <li>триггер на команду ТУ - срабатывает при получении Сервером определённой команды ТУ.</li>
    </ul>
    <p>Для каждого триггера создаётся набор команд ТУ, которые отправляются при его срабатывании. Информацию о срабатывании триггеров и отправленных командах можно получить на странице <em>Журнал</em> или напрямую из файла ModAutoControl.log, который находится в директории журналов Сервера, по умолчанию C:\SCADA\ScadaServer\Log</p>

    <h2 id="installation">Установка</h2>
    <p>Модуль автоматического управления устанавливается в соответствии с <a href="../installation-and-run/module-installation#modules">общей последовательностью установки модулей Сервера</a>. Файл библиотеки модуля - ModAutoControl.dll. В процессе подключения модуля необходимо выполнить несколько дополнительных действий:</p>
    <ol>
        <li>После активации модуля передать проект на сервер, чтобы при перезапуске службы Сервера определить код компьютера для регистрации.</li>
        <li>Выбрать модуль на странице <em>Модули</em> и нажать кнопку <em>Свойства</em>, чтобы открыть форму настройки модуля.</li>
        <li>Перейти на страницу <em>Регистрация</em> и зарегистрировать модуль, используя гиперссылки, размещённые на форме.</li>
        <li>Сконфигурировать модуль, создав триггеры и команды.</li>
        <li>Сохранить конфигурацию модуля и передать проект на сервер.</li>
    </ol>

    <h2 id="variables">Переменные команд ТУ</h2>
    <p>Строковые данные команду ТУ, которые отправляются при сработке триггеров, могут содержать переменные. Переменные записываются в фигурных скобках.</p>
    <p>Поддерживаются следующие переменные:</p>
    <table class="table table-hover">
        <thead>
            <tr>
                <th>Переменная</th>
                <th>Описание</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>{n}</td>
                <td>Текущее значение входного канала n с размерностью, где n - это номер канала, n = 0 - канал триггера на данные</td>
            </tr>
            <tr>
                <td>{Now}</td>
                <td>Текущие дата и время сервера</td>
            </tr>
            <tr>
                <td>{CnlNum}, {CnlName}</td>
                <td>Параметры триггера на данные: номер и наименование входного канала</td>
            </tr>
            <tr>
                <td>{CnlVal}, {CnlStat}</td>
                <td>Значение и статус входного канала, на которых сработал триггер на данные</td>
            </tr>
            <tr>
                <td>{EvNum}, {EvTime}, {EvObj}, {EvDev}, {EvCnl}, {EvText}</td>
                <td>Параметры события при сработке триггера на событие: номер, дата и время, объект, КП, канал, описание</td>
            </tr>
            <tr>
                <td>{CtrlCnlNum}, {CtrlCnlName}</td>
                <td>Параметры триггера на команду: номер и наименование канала управления</td>
            </tr>
            <tr>
                <td>{CmdVal}, {CmdDataStr}, {CmdDataHex}</td>
                <td>Параметры команды при сработке триггера на команду: значение, данные в виде строки, данные в 16-ричном представлении</td>
            </tr>
        </tbody>
    </table>
</div>
